A “database” refers to a set of related data and the way it is organized. Access to this data is usually provided by a “database management system” (DBMS) consisting of an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database. The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information and provides ways to manage how that information is organized. In common parlance, the term “database” may refer to both the database and the DBMS used to manipulate the database.
A database model is a data model (e.g., relational or XML), which determines the logical structure of a database and determines the manner in which data can be stored, organized, and manipulated. A popular example of a database model is the relational model, which uses a table-based format. In relational databases, a table is a set of data elements (values) using a model of vertical columns (identifiable by name) and horizontal rows, the cell being the unit where a row and column intersect. A table has a specified number of columns, but can have any number of rows. Structured Query Language (SQL) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS).
Databases and DBMSs can be categorized according to the database models that they support (such as relational or XML), the type of computer they run on (from a server cluster to a mobile phone), and the query languages used to access the database (such as SQL or XQuery). A database dictionary or database catalog of a database instance consists of metadata in which definitions of database objects such as base tables, views (virtual tables), synonyms, value ranges, indexes, users, and user groups are stored. The database catalog may be used, for example, as a reference guide for a query (e.g., SQL query) to locate and access specific database objects (e.g., fields, rows, or columns of a table) in the database instance.
While database objects (e.g., a table), which is stored in a database according to a fixed database schema or format, may be accessed or retrieved by database queries guided by the metadata in the database catalog, the retrieved database objects may be used or displayed in other data schema or formats (other than the database schema or formats), which may be specific to the user applications. Contemporary applications (e.g., web applications) may use data schema or formats that require large numbers of additional metadata (e.g., UI Label, etc.) to define the data schema or formats used by the applications. Database objects retrieved from a database (e.g., by row, column or table keys) may have to be mapped on to or synchronized with the different data schema or formats used by the querying application. Unfortunately, the mapping process, in addition to being tedious, can be error prone.
Consideration is now given to managing the differences in the data schema and formats of the data stored a database and the data schema and formats of the data used in applications.